home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b8.d64 / read'sprite.proc < prev    next >
Text File  |  2007-02-28  |  2KB  |  70 lines

  1. 9000 // DELETE "0:READ'SPRITE.PROC"
  2. 9010 //  BY CAPTAIN COMAL AND FRIENDS
  3. 9020 // LIST   "READ'SPRITE.PROC"
  4. 9030 //
  5. 9040 FUNC FIND'STRING CLOSED
  6. 9050 POINTER1:=PEEK(51)
  7. 9060 POINTER2:=PEEK(52)
  8. 9070 ADDRESS:=POINTER2*256+POINTER1
  9. 9080 RETURN ADDRESS+4
  10. 9090 ENDFUNC FIND'STRING
  11. 9100 //
  12. 9110 PROC READ'SPRITE'ML'DATA CLOSED
  13. 9120 //
  14. 9130 DATA 0,0,0,169,0,168,170,141
  15. 9140 DATA 168,2,141,169,2,141,170
  16. 9150 DATA 2,169,128,141,220,2,189
  17. 9160 DATA 0,4,41,1,240,10,185,168
  18. 9170 DATA 2,24,109,220,2,153,168
  19. 9180 DATA 2,232,224,24,240,8,78,220
  20. 9190 DATA 2,144,229,200,208,221,96
  21. 9200 TOTAL:=0
  22. 9210 FOR X:=680 TO 731 DO
  23. 9220 READ A
  24. 9230 POKE X,A
  25. 9240 TOTAL:+A
  26. 9250 ENDFOR X
  27. 9260 IF TOTAL<>5747 THEN
  28. 9270 PRINT "ERROR IN DATA STATEMENTS"
  29. 9280 STOP 
  30. 9290 ENDIF 
  31. 9300 ENDPROC READ'SPRITE'ML'DATA
  32. 9310 //
  33. 9320 PROC READ'SPRITE(BLK) CLOSED
  34. 9330 IF PEEK(683)<>169 THEN
  35. 9340 READ'SPRITE'ML'DATA
  36. 9350 ENDIF 
  37. 9360 DIM LINE$ OF 24
  38. 9370 DIM SPRITE$ OF 64
  39. 9380 SPRITE$:=""; COUNT:=1
  40. 9390 READ LINE$
  41. 9400 WHILE (LINE$(1)="0" OR LINE$(1)="1") AND COUNT<64 DO
  42. 9410 WHILE LEN(LINE$)<24 DO LINE$:=LINE$+"0"
  43. 9420 IF LINE$="" THEN NULL
  44. 9430 ADDR:=FIND'STRING
  45. 9440 POKE 702,ADDR MOD 256
  46. 9450 POKE 703,ADDR DIV 256
  47. 9460 SYS 683
  48. 9470 FOR X:=0 TO 2 DO
  49. 9480 SPRITE$(COUNT):=CHR$(PEEK(680+X))
  50. 9490 COUNT:+1
  51. 9500 ENDFOR X
  52. 9510 READ LINE$
  53. 9520 ENDWHILE 
  54. 9530 WHILE COUNT<64 DO
  55. 9540 SPRITE$(COUNT):=CHR$(0)
  56. 9550 COUNT:+1
  57. 9560 ENDWHILE 
  58. 9570 CASE LINE$(1) OF
  59. 9580 WHEN "H","╚"
  60. 9590 SPRITE$(64):=CHR$(0)
  61. 9600 WHEN "M","═"
  62. 9610 SPRITE$(64):=CHR$(1)
  63. 9620 OTHERWISE 
  64. 9630 PRINT "ERROR IN SPRITE DATA STATEMENTS"
  65. 9640 STOP 
  66. 9650 ENDCASE 
  67. 9660 DEFINE BLK,SPRITE$
  68. 9670 ENDPROC READ'SPRITE
  69. 9680 //
  70.